-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
(fix) Waveforms: cancel scratching / bending on cursor leave event #15498
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.5
Are you sure you want to change the base?
Conversation
|
Compiled main with this PR and I can't reproduce the issue. |
b847d14 to
c582fec
Compare
|
Great, thanks for testing! I added the 'open hand' cursor to indicate the drag behavior, like in the spinny |
c582fec to
1bf31f8
Compare
|
@djantti reported the issue also for 2.5 (I just rebased this onto 2.5) |
I am not sure what you mean with "it" and "there". I have not tested 2.5 branch recently but in main the spinny has the issue as he describes it. Have not tested your new hand commit yet. Did you mean that with your question? But good idea. |
|
I mean the waveform issue. Can you try the 2.5 branch and check if that also has the sticky cursor issue? |
|
Will take a look at the spinny issue. Seems I overlooked/misunderstood that. |
I have tried mixxx 2.5.3 rpmfusion in Fedorra rawhide and it has all the symptoms. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code's LGTM - didn't tested but seem to fix the issue. Let me know if you want me to merge or if you want to get the spinny fix in as well.
|
Let's fix it with one flush. Give a day or so. |
|
There was a funny dictionary for it www.phrasen.org but not reachable :-( |
|
I added a similiar fix for the spinny. Also needs to be tested. |
I tried this PR with main and 2.6 branch but the patch did not apply. So I compiled 2.5 branch where the patch applies cleanly. |
|
In 2.5 there is no setting for waveform acceleration. |
|
Awesome, this fixes the issue on my KDE test setup too. 👍 You do have to be a bit careful, since scratching will abruptly stop when the mouse pointer leaves the widget area. But it's still way better than it sticking. Also I'm not seeing any regressions on Gnome and there you can still go wild and use the entire screen for mouse scratching. And as @jospezial mentioned, waveform scratching still uses an arrow pointer instead of an open hand pointer. |
Yeah, I'm also worried about this.
Can you @djantti @jospezial confirm that the margin is respected with your Qt versions? IMO with the accelearated waveforms it's likely an issue with the event handling in QOpenGLWindow / OpenGLWindow. ¹ FWIW with Qt 6.2.3 I see Leave events not when the cursor leaves the widget with button pressed, but on button release, either inside or outside the widget. |
I must admit I never really work closely with the OpenGL event handling part, and only @m0dB could confirm with certainty, tho looking at the code, I came to the same conclusion than you! |
I tested this on my Fedora KDE system with Qt 6.9.2 and the margin is indeed respected for the waveform overview. It's a nice safety feature for sure. |
|
Okay, thanks fo testing! |
|
The last commit reverts the stop on leave. |
|
Latest changes do not work well. Mouse move into the scrolling waveform: Press button, move outside into other waveform (in this case), release button (does not play on): mouse again on scrolling waveform (plays on): |
|
And still no hand icon on scrolling waveform. |
Please redo and share the corresponding (part of the) log. |
Added the debug log in my upper post. Moving the mouse over is very spammy. |
|
Added some missing lines in the middle. |
|
Thank you for the extensive report! I'll remove the hacks/fixes and install logging in both OpenGLWindow and WWaveformViewer so we can hopefully debug where/when the button release event gets lost. |
Should fix #14492
Also adds logging for OpenGLWindow' dragLeave event.
So if the fix doesn't work, check the log for
warning: OpenGLWindow: dragLeave eventThough I'm not familiar with QOpenGL and its event handling.
@m0dB and @acolombier are the pros here.